#ifndef LOGICPROCESS_H
#define LOGICPROCESS_H
#include "allTaskList.h"
#include "allCommandStack.h"
#include "Task.h"
#include <string>
#include <iostream>
using namespace std;

class LogicProcess{
protected:
	string commandString;
	allTaskList *allTask;
	allCommandStack *prevCmds;
	Task needTask;
	TaskList *needList;
	TaskList *displayList;

	void pushToUndoList(Task task, commandType type, taskContainer container,bool needMore);
	void fromNeedtoDisplay();
public:
	LogicProcess(string cmdString,allTaskList *givenLists,allCommandStack *givenStacks);
	LogicProcess(Task task,TaskList *list);
	//Delete Functions
	//virtual int cvtToNumber(string tmp)=0;
	//Common Functions
	virtual void HandleProcesss()=0;
	virtual void quickProcess(Task task)=0;
	int cvtToNumber(string tmp);
};
#endif